An
object method is not uniquely determined without the object's
class. Since the class is almost always omitted in the calling
source (as required to obtain the true benefits of object-based
programming), IDLWAVE considers all available methods in all
classes as possible method name completions. The combined list of
keywords of the current method in all known classes
which contain that method will be considered for keyword
completion. In the *Completions* buffer, the matching classes
will be shown next to each item (see option
idlwave-completion-show-classes). As a special case,
the class of an object called ‘self’ is always taken to be the class
of the current routine, when in an IDLWAVE buffer. All inherits
classes are considered as well.
You can also call
idlwave-complete with a prefix arg: C-u
M-<TAB>. IDLWAVE will then prompt you for the class
in order to narrow down the number of possible completions. The
variable idlwave-query-class can be configured to
make such prompting the default for all methods (not
recommended), or selectively for very common methods for which
the number of completing keywords would be too large (e.g.
Init,SetProperty,GetProperty).
After you
have specified the class for a particular statement (e.g. when
completing the method), IDLWAVE can remember it for the rest of
the editing session. Subsequent completions in the same statement
(e.g. keywords) can then reuse this class information. This works
by placing a text property on the method invocation operator
‘->’, after
which the operator will be shown in a different face (bold by
default). The variable idlwave-store-inquired-class
can be used to turn it off or on.
1)Non-
nilmeans show up to that many classes in *Completions* buffer when completing object methods and keywords.
t)Non-
nilmeans fontify the classes in completions buffer.
nil)Association list governing query for object classes during completion.